<?php
class Distance {
	/**
	 *求两个已知经纬度之间的距离,单位为千米
	 *@param lng1,lng2 经度
	 *@param lat1,lat2 纬度
	 *@return float 距离，单位千米
	 **/
	public static function calc($lng1,$lat1,$lng2,$lat2) {
            if(!$lng1||!$lat1||!$lng2||!$lat2) {
                return -1;
            }
            //将角度转为弧度
            $radLat1=deg2rad($lat1);
            $radLat2=deg2rad($lat2);
            $radLng1=deg2rad($lng1);
            $radLng2=deg2rad($lng2);
            $a=$radLat1-$radLat2;//两纬度之差,纬度<90
            $b=$radLng1-$radLng2;//两经度之差纬度<180
            $s=2*asin(sqrt(pow(sin($a/2),2)+cos($radLat1)*cos($radLat2)*pow(sin($b/2),2)))*6378.137;
            return sprintf('%.2f', $s);
    }
}